class Decorator():
    # 用不用 静态方法都是可以的
    @staticmethod
    def log_function(func):
        def wrapper(*args, ** kwargs):
            print(f'function start')
            print(f'args: {args}')
            ret = func(*args, **kwargs)
            print(f'function end!')
            return ret
        return wrapper
    
    @log_function
    def fib(self, n):
        if n == 1:
            return 0
        if n == 2:
            return 1
        return self.fib(n-1) + self.fib(n-2)
    
print(Decorator().fib(2))